#include"myGame.h"

Animation::Animation(LPCTSTR path, int num, int interval) {
	// 设置动画帧之间的时间间隔
	interval_ms = interval;

	// 定义存储文件路径的数组
	TCHAR path_file[256];

	// 循环加载每一帧图片
	for (size_t i = 0; i < num; i++) {
		// 拼接当前帧的文件路径
		_stprintf_s(path_file, path, i);

		// 创建新的IMAGE对象用于存储当前帧
		IMAGE* frame = new IMAGE();

		// 加载当前帧的图片到frame对象中
		loadimage(frame, path_file);

		// 将当前帧添加到帧列表中
		frame_list.push_back(frame);
	}
}

Animation::~Animation() {
	// 遍历帧列表
	for (size_t i = 0; i < frame_list.size(); i++) {
		// 删除帧列表中的每个帧对象
		delete frame_list[i];
	}
}

void Animation::Play(int x, int y, int delta) {
	// 更新计时器
	timer += delta;

	// 如果计时器达到或超过动画帧间隔时间
	if (timer >= interval_ms) {
		// 更新当前帧索引
		idx_frame = (idx_frame + 1) % frame_list.size();
		// 重置计时器
		timer = 0;
	}

	// 在指定位置绘制当前帧图像
	putimage_alpha(x, y, frame_list[idx_frame]);
}
